// 题目:古典问题(兔子生惠):有一对兔子,从出生后第3个月起每
// 个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
// 假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即
// 可)
// 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.
// 个月是上两个月之和(从第三个月开始)。
//
// 即下
//________________第一种方法_______________________________
// #include <stdio.h>
// #include <stdlib.h>
// #include "windows.h"
// int aaa(int x) {
//     if(x==1) {
//         return 1;
//     }
//     if(x==2) {
//         return 1;
//     }
//     if(x>2) {
//         return aaa(x-1)+aaa(x-2);
//     }
// }
// int main() {
//     SetConsoleOutputCP(CP_UTF8);
//     printf("%d\n",aaa(40));
//     return 0;
// }
//____________第二种方法________________________________
// #include <stdio.h>
// #include <stdlib.h>
// #include "windows.h"
// int main() {
//     SetConsoleOutputCP(CP_UTF8);
//     int months = 40; // 前40个月
//     long long rabbits[months]; // 用数组存储兔子数量，避免重复计算
//
//     // 初始化前两个月的兔子总数
//     rabbits[0] = 1; // 第1个月
//     rabbits[1] = 1; // 第2个月
//
//     // 递推计算
//     for (int i = 2; i < months; i++) {
//         rabbits[i] = rabbits[i - 1] + rabbits[i - 2];
//     }
//
//     // 输出结果
//     for (int i = 0; i < months; i++) {
//         printf("第%d个月的兔子总数: %lld\n", i + 1, rabbits[i]);
//     }
//
//     return 0;
// }
